package top.whysu.edevice.service.ezviz;

import top.whysu.edevice.dto.ezviz.child.*;
import top.whysu.edevice.dto.ezviz.device.*;
import top.whysu.edevice.dto.ezviz.token.TokenRequestDTO;
import top.whysu.edevice.dto.ezviz.token.TokenResponseDTO;

/**
 * 萤石api接口相关
 */
public interface EzvizHttpService {

    /**
     * 获取AccessToken
     */
    TokenResponseDTO getAccessToken(TokenRequestDTO accessTokenDTO);
    /**
     * 获取播放地址
     */
    GetLiveAddressResponseTO getLiveAddress(GetLiveAddressRequestDTO requestDTO);
    /**
     * 新增设备
     */
    void addDevice(EzvizDeviceAddDTO deviceAddDTO);
    /**
     * 删除设备
     */
    void deleteDevice(EzvizDeviceDeleteDTO deviceDeleteDTO);
    /**
     * 修改设备名称
     */
    void updateDeviceName(EzvizDeviceRenameDTO deviceRenameDTO);
    /**
     * 创建子账号
     */
    ChildCreateResponseDTO createChildAccount(ChildCreateRequestDTO requestDTO);
    /**
     * 删除子账号
     */
    void deleteChildAccount(ChildDeleteRequestDTO requestDTO);
    /**
     * 获取单个子账号信息
     */
    ChildInfoResponseDTO getChildAccountInfo(ChildInfoRequestDTO requestDTO);
    /**
     * 设置子账户的授权策略
     */
    void childSetPolicy(ChildSetPolicyDTO policyDTO);
    /**
     * 获取B模式子账户accessToken
     */
    ChildTokenResponseDTO getChildAccessToken(ChildTokenRequestDTO requestDTO);
    /**
     * 添加设备到子账号
     */
    void deviceAddToAccount(DeviceAddToChildDTO childDTO);
}
